Data transmission approaches may include those that include lines that always transmit certain values, and those that can transmit data in “packet” form. A data packet may include a number of data values that can include a series of characters (e.g., byte values, or the like). Such data characters may be transmitted “as is” or may be encoded.
Conventionally, a data packet may have a start and/or an end that can be indicated by one or more control characters. Thus, a data packet may be “framed” to indicate a start and/or an end of packet, to thereby separate one data packet from another. Conventional approaches may demarcate packets by inserting one or more “control” characters. Control characters can be data characters having values predetermined to provide control information, and not a particular data value.
Conventional data packet-framing schemes may take various forms. Examples of conventional data packet framing schemes will be now described in more detail with reference to FIGS. 14-17.
Referring now to FIG. 14, a first example of a conventional data packet framing is set forth and designated by the general reference character 1400. The example of FIG. 14 shows two data packets 1402 and 1404. A first data packet 1402 may be preceded by a control character CTRL 1406-0 and include a number of data characters (1408-0 to 1408-n). In a similar fashion, a second data packet 1404 may be preceded by a control character CTRL 1406-1, and include a number of data characters (a first of which is shown 1410-0).
Also shown in FIG. 14 are control characters 1406-2. Control characters 1406-2 show how control characters may serve as a separation mechanism between an end of a previous data packet 1402 and a start of a following data packet 1404.
Thus, FIG. 14 shows a conventional data packet framing scheme 1400 in which a start of a packet (e.g., 1402) may be indicated by a control code (e.g., 1406-0) followed by a data character (e.g., 1408-0), and an end of a packet may be indicated by a control code (e.g., 1402-2) following a final data character (e.g., 1408-n) of a packet (e.g., 1402).
In the approach of FIG. 14, data packets must be separated by at least one control code. Accordingly, “back-to-back” packet transmission, that is transmission of one packet immediately followed by another, may not be possible, as a control code may have to be inserted between such packets.
FIG. 14 shows an example of “unaligned” packet transmission. However, in some cases it may be desirable to transmit packet data in an aligned fashion. Such an approach is shown in FIG. 15.
Referring now to FIG. 15, a second example of a conventional packet framing is set forth and designated by the general reference number 1500. The example of FIG. 15 shows two packets 1502 and 1504 that may be transmitted in an “aligned” fashion. In particular, data may be conceptualized as being arranged into predetermined, uniform portions. In the particular case of FIG. 15, packet data may be arranged with a four byte alignment. Thus, unlike a first example of a conventional packet framing 1400, a second example of a packet framing 1500 may show a four data characters alignment.
As but one example, an arrangement such as that shown in FIG. 15 may transmit four characters (or codes) in parallel. Such character (or codes) may be encoded for transmission.
Like the approach of FIG. 14, in FIG. 15 a packet start and end may be delineated by a predetermined control code. However, due to the indicated character alignment, packet separation may be achieved by inserting control codes according to data alignment. Accordingly, a data packet 1502 may be preceded by four aligned control characters CTRL (collectively shown as 1506). Similarly, separation between data packet 1502 and subsequent data packet 1504 may be accomplished by inserting at least four aligned control characters CTRL (collectively shown as 1508).
In this way, according to FIG. 15, a packet transmitted according to “m” aligned characters, may be separated by j*m control codes, where j is at least one.
A drawback to a conventional packet framing like that of FIG. 15 can be that in order to align a data packet with more than one data characters, a same number of control characters is included to separate data packets. This can consume transmission bandwidth that might otherwise be used to transmit data.
Referring now FIG. 16, a third example of a conventional packet framing is set forth and designated by the general reference number 1600. The example of FIG. 16 shows two data packets (1602 and 1604). Unlike the examples of FIGS. 14 and 15, data packets (1602 and 1604) may include a start control character STRT in addition to a number of data characters. Thus, a data packet 1602 may begin with a start character STRT 1606-0 and be followed by a number of aligned data characters (one of which is shown as 1608), while data packet 1604 may include a start control character STRT 1606-1 and be followed by a number of aligned data characters (one of which is shown as 1610).
A receiving circuit may be capable of recognizing a start control character STRT, thus determining a start of a data packet.
The particular example of FIG. 16 also shows how control characters CTRL (collectively shown as 1612) may be transmitted when packets are not transmitted (i.e., during idle time periods). Such control characters may be the same “idle” value.
Referring now to FIG. 17, a fourth conventional example of packet framing is set forth and designated by the general reference 1700. The example of FIG. 17 shows two data packets 1702 and 1704. In the approach of FIG. 17, each data packet may begin with a size control character SIZE. Thus, a data packet 1702 may begin with a size control character SIZE 1706-0 and be followed by a number of aligned data characters DATA (one of which is shown as 1708). Similarly, a data packet 1704 may include a size control character SIZE 1706-1 and be followed by a number of aligned data characters DATA (one of which is shown as 1710).
A size control character SIZE (1706-0 or 1706-1) may indicate a size of a data packet. Accordingly, a receiving circuit may determine when a packet starts or when a packet ends from such a size control character SIZE (1706-0 or 1706-1).
A drawback to the conventional approach shown in FIG. 17 can be complexity that can arise in the event of data corruption. In particular, a receiving circuit may rely on a size control character to synchronize a start of a next packet. However, if size data for one packet is corrupted, a start of subsequent packet may be missed, and a system may have to “re-synchronize” communication to re-establish a start location for transmitted packets.
While the above examples have illustrated various approaches to transmitting packet data, it remains a desirable goal to arrive at further ways of increasing the efficiency in the manner in which packet data is transmitted, as more efficient methods may lead to improved overall data packet transmission rates.